different types of hardware